Seane Decentraland
https://docs.decentraland.org/images/media/ecs-big-picture.png
Entities and components | Decentraland
ECS Entity component system
Entitiy エンティティにEntitiy エンティティやComponent コンポーネント codeが内包
Entitiy エンティティはScene シーンコンテナ
Component コンポーネント codeはプロパティ
EngineにEntitiy エンティティを渡す
Systemsは、Entitiy エンティティとComponent コンポーネント codeから分離
Component コンポーネント code内にあるプロパティを操作できる
Entitiy エンティティ
シーンのすべてを構築するための基本単位コンテナ
Entitiy エンティティやComponent コンポーネント codeを内包可能
例
シーン内のすべての3Dオブジェクトとオーディオプレーヤー
独自のプロパティやメソッドはない
Component コンポーネント codeを保持するコンテナにすぎない
いくつかのコンポーネントをグループ化するだけ
Component コンポーネント code
エンティティの特性を定義
例
transformコンポーネント
エンティティの座標、回転、スケールを保存
BoxShapeコンポーネント
エンティティにシーンにレンダリング立方体形状を与える
Materialコンポーネントは、エンティティの色や質感を与える
カスタムヘルスコンポーネント
エンティティの残りのヘルス値を格納する
ゲーム内の非プレイヤーの敵を表すエンティティに追加することも可能
見た目に関与するComponent コンポーネント code
Scene シーンのレンダリング Renderingと関連
値が変わると影響
ルール
親Entitiy エンティティに関するデータを保存するためのもの
データを保存するだけで変更してはいけない
変更は、Systemが行う
Systemは、Component コンポーネント codeやEntitiy エンティティと切り離されている
webのDOM Document Object Modelと要素 element HTMLのような感じ
divコンテナとその他の要素って感じ
https://docs.decentraland.org/images/media/ecs-components.png
bouncyBallentityに3つcomponentが入ってる